package cn.fl.capital.transform;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.capital.dto.CapAdvRvtDtlDTO;
import cn.fl.capital.vo.CapAdvRvtDtlVO;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description: 资金垫款明细 转换器
 * VO是客户端传递数据到服务端进行转换的数据
 * VO转换数据变成DTO传递到服务端
 * VO不能在服务端出现
 */
public class CapAdvRvtDtlVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto CapAdvRvtDtlDTO
     * @return CapAdvRvtDtlVO
     */
    public static CapAdvRvtDtlVO toVO(CapAdvRvtDtlDTO dto) {
        CapAdvRvtDtlVO vo = null;
        if (dto != null) {
            vo = new CapAdvRvtDtlVO();
            vo.setId(dto.getId());
            vo.setAdvFundId(dto.getAdvFundId());//资金编号 垫款（DK+ID）冲销（HB+ID）
            vo.setPaySchId(dto.getPaySchId());//支付表ID
            vo.setPaySchNo(dto.getPaySchNo());//支付表号
            vo.setPayPd(dto.getPayPd());//期次
            vo.setFeeTypCd(dto.getFeeTypCd());//费用类型
            vo.setPayAmt(dto.getPayAmt());//金额
            vo.setPenaltyRate(dto.getPenaltyRate());//日罚息率(%)
            vo.setCapUseCost(dto.getCapUseCost());//资金使用成本
            vo.setBuOrgCd(dto.getBuOrgCd());//(支付表)所属事业部
            vo.setOvdDay(dto.getOvdDay());//逾期天数
            vo.setPayDt(dto.getPayDt());//应付时间
            vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo CapAdvRvtDtlVO
     * @return CapAdvRvtDtlDTO
     */
    public static CapAdvRvtDtlDTO toDTO(CapAdvRvtDtlVO vo) {
        CapAdvRvtDtlDTO dto = null;
        if (vo != null) {
            dto = new CapAdvRvtDtlDTO();
            dto.setId(vo.getId());
            dto.setAdvFundId(vo.getAdvFundId());//资金编号 垫款（DK+ID）冲销（HB+ID）
            dto.setPaySchId(vo.getPaySchId());//支付表ID
            dto.setPaySchNo(vo.getPaySchNo());//支付表号
            dto.setPayPd(vo.getPayPd());//期次
            dto.setFeeTypCd(vo.getFeeTypCd());//费用类型
            dto.setPayAmt(vo.getPayAmt());//金额
            dto.setPenaltyRate(vo.getPenaltyRate());//日罚息率(%)
            dto.setCapUseCost(vo.getCapUseCost());//资金使用成本
            dto.setBuOrgCd(vo.getBuOrgCd());//(支付表)所属事业部
            dto.setOvdDay(vo.getOvdDay());//逾期天数
            dto.setPayDt(vo.getPayDt());//应付时间
            dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<CapAdvRvtDtl>
     * @return List<CapAdvRvtDtlDTO>
     */
    public static List<CapAdvRvtDtlVO> toVOList(List<CapAdvRvtDtlDTO> list) {
        List<CapAdvRvtDtlVO> voList = new ArrayList<CapAdvRvtDtlVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (CapAdvRvtDtlDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<CapAdvRvtDtlVO>
     * @return List<CapAdvRvtDtlDTO>
     */
    public static List<CapAdvRvtDtlDTO> toDTOList(List<CapAdvRvtDtlVO> list) {
        List<CapAdvRvtDtlDTO> dtoList = new ArrayList<>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (CapAdvRvtDtlVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
